package com.sky.utils;

import org.springframework.beans.BeanUtils;

import java.lang.reflect.Constructor;

public class ChangeType {
    /**
     * 将source对象中的属性值复制到target对象中
     * @param source 原对象
     * @param target 目标对象
     * @return
     * @param <I> 原对象类型
     * @param <T> 目标对象类型
     */
    public static <I, T> T change(I source,T target) {
        if (source == null) {
            throw new RuntimeException("传入参数为null");
        }
        try {
            BeanUtils.copyProperties(source, target);
            return target;
        } catch (Exception e) {
            throw new RuntimeException("类型转换失败: " + e.getMessage(), e);
        }
    }

}
